﻿/// <reference path="jquery-1.7-vsdoc.js" />
/// <reference path="jquery-ui-1.8.16.js" />
/// <reference path="jquery.validate-vsdoc.js" />
/// <reference path="jquery.validate.unobtrusive.js" />

var telaAtual = '';
var largura = 'auto';
var posicao = 'center';
var chartColors = ['#da682c', '#92c83e', '#eaa036', '#a94024', '#002646', '#3a5018', '#572911', '#6a204a', '#F90', '#333', '#555', '#111', '#002646', '#999', '#bbb', '#ccc', '#eee'];

$(function () {
    $.definirUI();

    $('#menulateral').accordion({
        active: false,
        autoHeight: false
    });

    $('#backbutton').click(function () {
        if (document.referrer.indexOf(window.location.hostname) != -1) {
            parent.history.back();
            return false;
        }
    });

    $('#progress')
        .ajaxSend(function () {
        })
        .ajaxStart(function () {
            $(this).show();
        })
        .ajaxSuccess(function () {
            $(this).hide();
        })
        .ajaxComplete(function () {
            $.definirUI();
        })
        .ajaxStop(function () {
        })
        .ajaxError(function (e, xhr, settings, exception) {
            alert('Erro em: ' + settings.url + ' \n' + 'error:\n' + xhr.responseText);
        });

});  // final do document.ready

$.extend({
    definirUI: function () {
        $('button, :submit, :reset, .ui-button').button();
    },
    modalPopup: function (nome, titulo, id) {
        if (titulo == undefined)
            titulo = telaAtual;

        var pos = posicao;
        var lar = largura;
        var submodal = false;
        if (titulo != telaAtual) {
            pos = 'center';
            lar = 'auto';
            submodal = true;
        }

        var $modal = $('#' + nome);
        var $form = $modal.find('form').first();

        $modal.dialog({
            title: titulo,
            resizable: false,
            draggable: true,
            modal: true,
            autoOpen: false,
            position: pos,
            width: lar,
            show: 'fade',
            buttons: {
                "OK": function (e) {
                    $.validator.unobtrusive.parse($form);
                    if ($form.valid()) {
                        $modal.parents('.ui-dialog').find('button:contains("OK")').button('disable');
                        $.post($form.attr('action'),
                            $form.serialize(),
                            function (data) {
                                if (submodal) {
                                    carregaParcial(titulo, id);
                                }
                                else {
                                    $('#maindiv').html(data);
                                }
                                removeModal($modal);
                            });
                    }
                },
                "Cancelar": function () {
                    removeModal($modal);
                }
            },
            open: function () {
                $.validator.unobtrusive.parse($form);
                $(this).find('input').keyup(function (e) {
                    if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
                        e.preventDefault();
                        $(this).parents('.ui-dialog').find('button:contains("OK")').click();
                    }
                });
            },
            close: function () {
                $modal.remove();
                $('.ui-dialog button:contains("OK")').button('enable');
                return false;
            },
            blur: function () {
                var $primeiro = $(this).find('form:not(.filter) :input:visible:first');
                $primeiro.focus();
            }
        })

        $modal.ajaxSuccess(function () {
            $modal.dialog('open');
        });
    },
    configuraTelaAtual: function (tela) {
        telaAtual = tela;
        document.title = telaAtual;
        $('#subtitulo').text(telaAtual);

        $('#novobutton').click(function () {
            var nome = 'novo' + telaAtual;
            criaModal(nome);
            var $modal = $('#' + nome);
            $.ajax({
                url: telaAtual + '/Criar',
                success: function (retorno) {
                    $modal.html(retorno)
                    $.modalPopup(nome, telaAtual);
                },
                error: function (erro) {
                    alert(erro);
                }
            });
        });

        $('#modal').dialog({
            title: telaAtual
        });

        posicao = 'center';
        largura = 'auto';
    }
})

function criaModal(nome) {
    var $modal = $("<div class='modal' style='display:none' id='" + nome + "'>" + nome + "</div>");
    $('body').prepend($modal);
}

function removeModal($modal) {
    $modal.dialog('close');
    $modal.remove();
}

function carregaParcial(nome, id) {
    if (id != undefined)
        var url = 'Parcial/' + nome + '/' + id;
    else
        var url = 'Parcial/' + nome;
    var $updatediv = $('#' + nome + 'Parcial');

    $.ajax({
        url: url,
        success: function (retorno) {
            $updatediv.html(retorno);
        },
        error: function (erro) {
            alert(erro);
        }
    });
}

function changeURL(url) {
    location.hash = url;
}

function changeTitle(title) {
    $('#subtitulo').text(title);
}

function geragrafico() {
    $('table.stats').each(function () {
        var chartType = '';

        if ($(this).attr('data-chart')) {
            chartType = $(this).attr('data-chart');
        }
        else {
            chartType = 'area';
        }

        var chart_width = $(this).parent().width() * .92;

        $(this).hide().visualize({
            type: chartType, // 'bar', 'area', 'pie', 'line'
            width: chart_width,
            height: '240px',
            colors: chartColors
        });
    });
}
function barradeprogresso(id) {
    $(function () {
        $("#" + id).progressbar({
            value: 37
        });
    });
}